package py.com.alfa.escriba.gui.controller.object.admin;

import java.util.ArrayList;
import java.util.List;

import org.springframework.context.ApplicationContext;

import py.com.alfa.escriba.gui.config.EscribaGUIApplicationContextProvider;
import py.com.alfa.escriba.gui.controller.view.Permissions;
import py.com.alfa.escriba.gui.controller.view.View;
import py.com.alfa.escriba.gui.controller.view.ViewManager;
import py.com.alfa.escriba.gui.controller.view.admin.PerfilesViewContext;
import py.com.alfa.escriba.gui.controller.view.admin.PerfilesViewFragment;
import py.com.alfa.escriba.gui.dto.admin.FuncionalidadDTO;
import py.com.alfa.escriba.gui.dto.admin.PerfilDTO;
import py.com.alfa.escriba.gui.services.Services;



public class PerfilesControllerObject {
	
	private List<PerfilDTO> perfiles;
	private PerfilDTO perfil;
	private List<FuncionalidadDTO> funcionalidades;
	private ViewManager viewManager;
	
	public PerfilesControllerObject() {
		ApplicationContext ctx = EscribaGUIApplicationContextProvider.getContext();
		this.setViewManager((ViewManager) ctx.getBean(Services.VIEW_MANAGER));
		this.getViewManager().registerContext(View.PERFILES, new PerfilesViewContext());
		this.setPerfiles(new ArrayList<PerfilDTO>());
		this.setFuncionalidades(new ArrayList<FuncionalidadDTO>());
		this.setPerfil(null);
	}

	public PerfilesViewFragment view(){
		return (PerfilesViewFragment) this.getContext().getViewFragment();
	}

	public PerfilesViewContext getContext(){
		return (PerfilesViewContext) getViewManager().getContext(View.PERFILES);
	}
	
	public Permissions getPermissions(){
		return getViewManager().getPermissions();
	}	
	public ViewManager getViewManager() {
		return viewManager;
	}

	public void setViewManager(ViewManager viewManager) {
		this.viewManager = viewManager;
	}
	
	public String descEstado(boolean activo) {
		return (activo)?"SI":"NO";
	}

	public List<PerfilDTO> getPerfiles() {
		return perfiles;
	}

	public void setPerfiles(List<PerfilDTO> perfiles) {
		this.perfiles = perfiles;
	}

	public PerfilDTO getPerfil() {
		if(this.perfil == null) this.perfil = new PerfilDTO();
		return perfil;
	}

	public void setPerfil(PerfilDTO perfil) {
		this.perfil = perfil;
	}

	public List<FuncionalidadDTO> getFuncionalidades() {
		return funcionalidades;
	}

	public void setFuncionalidades(List<FuncionalidadDTO> funcionalidades) {
		this.funcionalidades = funcionalidades;
	}
	
		
}
